package com.zz.common.codeGenerator.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zz.common.base.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

/**
 * 表单Schema配置实体API类
 *
 * @author zl
 * @since 2025-11-22 08:29:41
 */
@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "表单Schema配置")
public class GenFormSchemaDto extends BaseDto {

    @ApiModelProperty(value = "主键ID", name = "schemaId")
    private String schemaId;

    @ApiModelProperty(value = "关联的业务表ID", name = "tableId")
    private String tableId;

    @ApiModelProperty(value = "关联的业务表名称", name = "tableName")
    private String tableName;

    @ApiModelProperty(value = "版本号", name = "version")
    private String version;

    @ApiModelProperty(value = "表单Schema配置内容", name = "schemaJson")
    private Map<String, Object> schemaJson;

    @ApiModelProperty(value = "创建人", name = "createBy")
    private String createBy;

    @ApiModelProperty(value = "创建时间", name = "createDate")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createDate;

    @ApiModelProperty(value = "更新人", name = "updateBy")
    private String updateBy;

    @ApiModelProperty(value = "更新时间", name = "updateDate")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateDate;

    @ApiModelProperty(value = "备注", name = "remark")
    private String remark;

    @ApiModelProperty(value = "删除标识", name = "delFlag")
    private String delFlag;


    // ================= 以下为自定义字段 =================
    private String schemaJsonStr;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private List<LocalDateTime> createDateRange;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private List<LocalDateTime> updateDateRange;

}
